Test-driven development is an approach for creating software, characterized by short development cycles, where the development of a new software feature is preceded by writing at least one test for that feature. Essentially, the developers following the test-driven development approach focus on the requirements of the new feature for software program, e.g., script or scripts, service, product, etc.) before any actual programming. Once a test for the behavior of the new feature is created, a developer may program the feature to satisfy the test. The test-driven development also requires executing other similar tests for previously developed features, if any. Thus, it may be checked whether the new code alters the functionality of the previous development.
Typically, the development of commercially oriented computer programs is organized as distributed projects involving a number of developers. Following test-driven development approach in distributed development projects is challenging, at least because different features of a computer program are developed in parallel by different programmers. An additional challenge before the test-driven development approach is associated with accessing shared resources when the developed software programs should operate in client-server environment (e.g., providing services over the Internet to multiple clients).